Set – Get 方法
set方法
- 作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤.
- 命名规范:
-方法名必须以set开头;
- set后面跟上成员变量的名称,成员变量的首字母必须大写;
- 方法的返回值一定是void
- 一定要接收一个参数,而且参数类型跟成员变量类型一致;
- 形参的名称不能和成员变量名一致;
例:
// People.h
#import <Foundation/Foundation.h>
@interface People : NSObject
{
int age;
}
- (void)setAge:(int)newAge;
@end
// People.m
#import "People.h"
@implementation People
- (void)setAge:(int)newAge
{
if (newAge <= 0) {
newAge = 1;
}
age = newAge;
}
@end
get 方法
- 作用:返回对象内部的成员变量
- 命名规范:
- 肯定有返回值,返回值类型肯定与成员变量一致;
- 方法名跟成员变量名一样;
- 不需接收任何参数;
例:
// People.h
#import <Foundation/Foundation.h>
@interface People : NSObject
{
int age;
}
- (int)age;
@end
// People.m
#import "People.h"
@implementation People
- (int)age
{
return age;
}
@end
点语法
利用点语法替代set和get方法
方法调用
Person * p = [Person new];
[p setAge:20];
int age = [p age];
点语法
p.age = 20;
int age = p.age;
点语法的本质
- c中点语法的本质还是方法调用;
- 当使用点语法时,编译器会自动展开成相应的方法;
p.age = 20; 展开为:[p setAge:20];
int age = p.age; 展开为:int age = [p age];
死循环注意
- (void)setAge:(int)age
{
//会引起死循环
self.age = age;
}
- (int)age
{
//会引起死循环
return self.age;
}